import { watchEffect } from 'vue';
import { useUserStore } from '@vben/stores';
import { preferences } from '@vben/preferences';

/**
 * 动态设置页面标题和图标
 */
export function usePageMeta() {
  const userStore = useUserStore();

  // 设置页面标题和图标
  function setPageTitleAndIcon() {
    // 设置页面标题
    if (userStore.tenant?.shortName) {
      document.title = userStore.tenant.shortName ?? '';
    } else {
      // 如果没有 tenant 信息，使用默认标题
      document.title = preferences.app.name ?? '';
    }
    
    // 设置页面图标
    const faviconUrl = userStore.tenant?.loginUrl as string;    
    const link = document.querySelector('link[rel="icon"]') || document.createElement('link');
    link.setAttribute('rel', 'icon');
    link.setAttribute('href', faviconUrl);
    link.setAttribute('type', 'image/png');
    
    if (!document.querySelector('link[rel="icon"]')) {
      document.head.appendChild(link);
    }
  }

  // 监听 tenant 信息变化
  watchEffect(() => {
    setPageTitleAndIcon();
  });

  return {
    setPageTitleAndIcon,
  };
} 
